# Python 正则表达式

# 正则表达式是使用 re 模块来实现的。

# re 模块的主要方法有：

# re.match() 匹配字符串的开始位置
# re.search() 在整个字符串中搜索模式
# re.findall() 在字符串中找到所有匹配的子串，并返回一个列表
# re.sub() 用新字符串替换旧字符串中匹配的子串
# re.compile() 编译正则表达式，以便可以多次使用

# 示例：

import re

# 匹配字符串的开始位置
pattern = r"^fuck"
string = "fuck you"
# 注意：^ 表示字符串的开始位置
match = re.match(pattern, string)
if match:
    print("匹配到开始的位置:", match.start())
else:
    print("match 未找到匹配项")

# 在整个字符串中搜索模式
pattern = r"you"
string = "fuck you"
# search() 方法在整个字符串中搜索模式，而 match() 方法只匹配字符串的开始位置
match = re.search(pattern, string)
if match:
    print("在索引处找到匹配项:", match.start())
else:
    print("search 未找到匹配项")

# 在字符串中找到所有匹配的子串，并返回一个列表
pattern = r"\d+"
string = "fuck 123 you 456"
# findall() 方法在字符串中找到所有匹配的子串，并返回一个列表
matches = re.findall(pattern, string)
print("匹配的子串:", matches)

# 用新字符串替换旧字符串中匹配的子串
pattern = r"\d+"
string = "fuck 123 you 456"
# sub() 方法用新字符串替换旧字符串中匹配的子串
new_string = re.sub(pattern, "number", string)
print("新的字符串:", new_string)

# 编译正则表达式，以便可以多次使用
pattern = r"\d+"
# compile() 方法编译正则表达式，以便可以多次使用
regex = re.compile(pattern)
string = "fuck 123 you 456"
matches = regex.findall(string)
print("匹配的子串:", matches)
